數據的存儲結構可用以下四種基本存儲方法得到:
(1)順序存儲方法
該方法把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現。
由此得到的存儲表示稱為順序存儲結構(Sequential Storage Structure ),通常借助程序語言的數組描述。
該方法主要應用于線性的數據結構。非線性的數據結構也可通過某種線性化的方法實現順序存儲。
(2)鏈接存儲方法
該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系由附加的指針字段表示。由此得到的存儲表示稱為鏈式存儲結構(Linked Storage Structure), 通常借助于程序語言的指針類型描述。
(3)索引存儲方法
該方法通常在儲存結點信息的同時,還建立附加的索引表。索引表由若干索引項組成。若每個結點在索引表中都有一個索引項,則該索引表稱之為稠密索引(Dense Index )。若一組結點在索引表中只對應一個索引項,則該索引表稱為稀疏索引(Spare Index)。索引項的一般形式是:關鍵字、地址。
關鍵字是能唯一標識一個結點的那些數據項。稠密索引中索引項的地址指示結點所在的存儲位置;稀疏索引中索引項的地址指示一組結點的起始存儲位置。
(4)散列存儲方法
該方法的基本思想是:根據結點的關鍵字直接計算出該結點的存儲地址。
四種基本存儲方法,既可單獨使用,也可組合起來對數據結構進行存儲映像。
同一邏輯結構采用不同的存儲方法,可以得到不同的存儲結構。選擇何種存儲結構來表示相應的邏輯結構,視具體要求而定,主要考慮運算方便及算法的時空要求。
數據結構三方面的關系
數據的邏輯結構、數據的存儲結構及數據的運算這三方面是一個整體。孤立地去理解一個方面,而不注意它們之間的聯系是不可取的。 存儲結構是數據結構不可或缺的一個方面:同一邏輯結構的不同存儲結構可冠以不同的數據結構名稱來標識。